package com.marvels.financial.loan.dao;

import com.marvels.financial.loan.dto.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface ReimbursementProcessDao {
	/**
	 * 通过身份证查代扣流水数据
	 * @param dto
	 * @return
	 */
	public List<Map<String,Object>> selectMcfePaymentWithhold(McfePaymentWithholdDTO dto);
	/**
	 * 通过 冲帐序列号，查找当期扣款金额，
	 * @param orgTransctionSeq
	 * @return
	 */
	public List<Map> penaltyAdjustmentList(String orgTransctionSeq); 
	/**
	 * 通过 合同号查询还款计划数据
	 * @param contractId = 合同号
	 * @return
	 */
	public List<Map> selectMcfeCustomerRepaymentPlan(String contractId);
	/**
	 * 通过loanId查逾期的还款计划
	 * @param contractId
	 * @return
	 */
	public List<McfeCustomerRepaymentPlanDTO> selectOverPlan(String loanId);
	/**
	 * 通过合同ID查询合同信息
	 * @param contractId
	 * @return
	 */
	public McfeCustomerLoanContractDTO selectMcfeCustomerLoanContract(String contractId);
	/**
	 * 通过 身份证号查还款计划表数据
	 * @param custCardNo
	 * @return
	 */
	public List<Map> queryReturnInfo(String custCardNo);
	/**
	 * 通过loanId查询当期扣款状态
	 * @param loanId
	 * @return
	 */
	public String queryPlanIdStatus(String loanId);
	/**
	 * 通过身份证查在途的现金贷
	 * @param custCardNo
	 * @return
	 */
	public List<ShouldRepaymentDTO> getOnwayRayment(@Param("loanId") String loanId, @Param("custCardNo") String custCardNo);
	/**
	 * 查出还款计划数据
	 * @param loanId
	 * @return
	 */
	public List<Map> queryReturnInfoByLoanId(String loanId);
	/**
	 * 通过 loanId查借据
	 * @param repaymentNoMobileDTO
	 * @return
	 */
	public Map queryDebt(String loanId);
	/**
	 * 查询还款计划
	 * @param loanId
	 * @return
	 */
	public List<McfeCustomerRepaymentPlanDTO> queryByLoanId(String loanId);
	/**
	 * 永久换还款卡
	 * @param repaymentNoMobileDTO
	 * @return
	 */
	public int updateBank(RepaymentNoMobileDTO repaymentNoMobileDTO);
	
	/**
	 * 通过身份证号码查询应还款金额，应还款金额=((应还款本金/7)+(应还款管理费/7))*第几日-已还款本金-已还款管理费+应还违约金+应还滞纳金-已还违约金-已还滞纳金
	 * @param custCardNo
	 * @return
	 */
	public List<ShouldRepaymentDTO> queryNewOnwayRayment(String custCardNo);	
	
}
